package com.ruoyi.pingan.fymodule.account.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serializable;

/**
 * <p>
 * 用户
 * </p>
 *
 * @author wangy
 * @since 2025-06-11
 */
@Data
@TableName("sxo_user")
@Schema(name = "SxoUser对象", description = "用户")
public class SxoUser implements Serializable {

    private static final long serialVersionUID = 1L;

    @Schema(description = "自增id")
    @TableId(value = "id", type = IdType.AUTO)
    private String id;

    @Schema(description = "会员码")
    @TableField("number_code")
    private String numberCode;

    @Schema(description = "状态（0正常, 1禁止发言, 2禁止登录）")
    @TableField("status")
    private Byte status;

    @Schema(description = "配合密码加密串")
    @TableField("salt")
    private String salt;

    @Schema(description = "登录密码")
    @TableField("pwd")
    private String pwd;

    @Schema(description = "用户名")
    @TableField("username")
    private String username;

    @Schema(description = "用户昵称")
    @TableField("nickname")
    private String nickname;

    @Schema(description = "手机号码")
    @TableField("mobile")
    private String mobile;

    @Schema(description = "电子邮箱（最大长度60个字符）")
    @TableField("email")
    private String email;

    @Schema(description = "性别（0保密，1女，2男）")
    @TableField("gender")
    private Byte gender;

    @Schema(description = "用户头像地址")
    @TableField("avatar")
    private String avatar;

    @Schema(description = "所在省")
    @TableField("province")
    private String province;

    @Schema(description = "所在市")
    @TableField("city")
    private String city;

    @Schema(description = "所在市")
    @TableField("county")
    private String county;

    @Schema(description = "生日")
    @TableField("birthday")
    private Integer birthday;

    @Schema(description = "详细地址")
    @TableField("address")
    private String address;

    @Schema(description = "有效积分")
    @TableField("integral")
    private Integer integral;

    @Schema(description = "锁定积分")
    @TableField("locking_integral")
    private Integer lockingIntegral;

    @Schema(description = "推荐人用户id")
    @TableField("referrer")
    private Integer referrer;

    @Schema(description = "用户分销等级（手动指定）")
    @TableField("plugins_distribution_level")
    private Integer pluginsDistributionLevel;

    @Schema(description = "用户分销等级（自动匹配）")
    @TableField("plugins_distribution_auto_level")
    private Integer pluginsDistributionAutoLevel;

    @Schema(description = "会员等级增强版（手动指定）")
    @TableField("plugins_user_level")
    private Integer pluginsUserLevel;

    @Schema(description = "会员等级增强版（自动匹配）")
    @TableField("plugins_user_auto_level")
    private Integer pluginsUserAutoLevel;

    @Schema(description = "是否已删除（0否, 大于0删除时间）")
    @TableField("is_delete_time")
    private Integer isDeleteTime;

    @Schema(description = "是否已注销（0否, 大于0删除时间）")
    @TableField("is_logout_time")
    private Integer isLogoutTime;

    @Schema(description = "添加时间")
    @TableField("add_time")
    private Integer addTime;

    @Schema(description = "更新时间")
    @TableField("upd_time")
    private Integer updTime;
}
